Any additions to the ReWrite 0.2.5 README are labelled in blue.
ReWrite is a development version of a programming language for the Macintosh using a rewrite rules syntax. See the Documentation for details.
• Changes to ReWrite 0.2.6
Some bug fixes in the compiler (the bugs could cause bus errors).
Compiler doesn't try to keep going after errors any more (this was dangerous).
No new functionality (only bug fixes) has been added since ReWrite 0.2.5.
This version seems quite robust.
• Changes to ReWrite 0.2.5
Dotted variables may appear anywhere in a pattern - the following sort will now work:
sort[{.a,b,c,.d}]::b>c -> sort[{.a,c,b,.d}];
sort[x] -> x;
This makes the language much more powerful and expressive.
There are some other small changes, see Appendix 7 of the documentation for details.
Files
This file should be part of a folder containing the following:
This README file
ReWrite 0.2.6 (the application)
ReWrite 0.2.6 Docs (a DOCMaker document)
ReWrite 0.2.6 Docs - Claris (the above converted to ClarisWorks™)
Sample Project
Sample Project should contain the following files:
0Project
r.setup
r.go
l.setup
l.go
Requirements
ReWrite 0.2.6 will only work on Macintoshes with a 68020 or better, and (last time I checked) will run in emulation on PowerMacs. It requires at least 1500K to run. I think that System 7.0 or better is also required.
Documentation
The main form of the Documentation is The DOCMaker document, but for ease of anyone who wishes to print it out a ClarisWorks™ version has been included. (This should easily convert to whatever word processor you use). Both versions of the Documentation are (very nearly) the same. Colour text is used for clarity, but is not essential for making sense of the documents. Also, page and section numbering has not been used, as the documentation is not in its final form.
Versions and changes
ReWrite is a very rapidly evolving language. In the documentation I have tried to point out features that will not be supported or be different in later versions. Also, there is a lot of stuff that is undocumented that still might be useful (e.g. try 'getclipboard[]'). I make no guarantees about particular functions operating in exactly the same way in future versions, but if I make any major changes to the syntax I will endeavour to provide easy means of conversion.
One relatively recent change was the addition of new types (before there was only 'list' and 'int'). Some of the documentation (and certainly some of the functions) have not 'caught up' yet with this change. The compiler doesn't really use these types yet (any undocumented functions will store strings as lists of integers). Any type inconsistencies will be fixed in ReWrite 0.3.
There will be a new version coming out (hopefully in the next few months) that has a new project structure, a faster smaller compiler, macros and more types, but this will depend on other commitments and level of interest (compiler writing is hard work). ReWrite is a personal (hobby) project - I am writing it in my spare(?) time.
Let me know
One of the reasons for getting this version out is to get feedback from anybody interested. I would like you hear if you -
• find any bugs or have any other problems with ReWrite,
• have any suggested improvements or extensions (also check the last appendix of the documentation),
• want to make any (constructive) suggestions,
• have any comments to make about the documentation,
• want me E-mail you about future releases (also check the WWW pages),
• have any example source code you wish to contribute,
• can think of any problems that ReWrite would be well/badly suited for,
• have anything else that you want to say or ask.
I can be contacted in the following ways:
Email: rward@random.otago.ac.nz
Postal address (until 30th of December):
Roy Ward,
144 Pine Hill Road,
Dunedin,
New Zealand.
Note that the postal address only applies to the end of the year; after that any mail sent to that address will not reach me.
ReWrite is freeware and may be distributed freely in its original form (or in its original form along with any source code written by others that is clearly labelled as such), as long as it is not distributed for profit without express permission from the author.
ReWrite has been designed to be robust, but is distributed without any warranties, and in the unlikely event of this program causing damage the author assumes no responsibility for any such damage.